package com.example.demo.Utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.example.demo.DBmake.PostgreDB;
import com.example.demo.JsonObj.FriListObj;
import com.example.demo.JsonObj.FriendObj;
import com.example.demo.api.CommonResult;

import java.util.ArrayList;

public class JsonUtil {

    public static ArrayList<FriendObj> getFriendList(String FriendJson){
        JSONArray FriendList = JSON.parseArray(FriendJson);
        ArrayList<FriendObj> friendObjs = new ArrayList<>();
        for(Object jsonObject : FriendList){
            FriendObj friendObj = JSONObject.parseObject(jsonObject.toString(),FriendObj.class);
            friendObjs.add(friendObj);
        }
        return friendObjs;
    }

    /***
     * 好友列表转带实时信息的好友列表对象数组
     * @param FriendJson 好友列表
     * @param Uid 用户uid
     * @return ArrayList<FriListObj> 好友列表对象数组
     *          null 转换失败
     */
    public static ArrayList<FriListObj> getListFriend(String FriendJson,int Uid){
        JSONArray FriendList = JSON.parseArray(FriendJson);
        ArrayList<FriListObj> friListObjs = new ArrayList<>();
        for(Object jsonObject : FriendList){
            FriendObj friendObj = JSONObject.parseObject(jsonObject.toString(),FriendObj.class);
            PostgreDB Target = new PostgreDB();

            FriListObj tmp = Target.FRL2LFR(friendObj,Uid);
            if(tmp==null) return null;
            friListObjs.add(tmp);
        }
        return friListObjs;
    }

    /***
     * 添加好友
     * @param FriendJson 好友列表
     * @return String 新好友列表
     *          null 添加失败
     */
    public static String AddFriend(String FriendJson,int Uid,String FriendName,String nickname){
        ArrayList<FriendObj> friendObjs = JsonUtil.getFriendList(FriendJson);
        for(FriendObj friendObj:friendObjs){
            if(friendObj.getUid() == Uid){
                return null;
            }
        }
        FriendObj tmp = new FriendObj();
        tmp.setUid(Uid);
        tmp.setUsername(FriendName);
        tmp.setNickname(nickname);
        friendObjs.add(tmp);
        return JSON.toJSONString(friendObjs);
    }
}
